# 在类中定义成员方法和前面学习过的定义函数,基本是一样的(原理和运行机制是一样)，但是还是有点不同(形式上有不同)
# 定义成员方法的基本语法:
# def 方法名(sel, 形参列表):
#       方法体

# 1)在方法定义的参数列表中，有一个 self
# 2)self 是定义成员方法时，需要写上的
# 3)self 表示当前对象本身
# 4)当我们通过对象调用方法时，self 会隐式的传入
# 5)在方法内部，需要使用self，才能访问到成员变量


# 定义一个Person 类(name,age)，完成如下要求:
# 添加hi 成员方法,输出"hi, python"
# 添加cal01 成员方法,可以计算从 1 +..+1000的结果
# 添加ca102 成员方法,该方法可以接收一个数n，计算从 1+.+n 的结果3)”
# 添加get sum成员方法,可以计算两个数的和，并返回
class Person:
    # 定义一个Person类，用于演示对象的创建和方法调用
    name = None  # 类变量，用于存储名字
    age = None  # 类变量，用于存储年龄

    def hi(self):
        # 实例方法，用于打印问候语
        print("hi, python")

    def cal01(self):
        # 实例方法，用于计算1到999的累加和并打印结果
        result = 0
        for i in range(1, 1000):
            result += i
        print(result)

    def cal02(self, n):
        # 实例方法，用于计算1到n-1的累加和并打印结果
        # 参数n：一个整数，表示累加的上限（不包含n本身）
        result = 0
        for i in range(1, n):
            result += i
        print(result)

    def get_sum(self, a, b):
        # 实例方法，用于返回两个数字的和
        # 参数a：第一个加数
        # 参数b：第二个加数
        # 返回值：a和b的和
        return a + b()


# 对象名.方法名调用方法

# 创建Person类的一个实例
p = Person()

# 调用hi方法
p.hi()
# 调用cal01方法计算1到999的累加和
p.cal01()
# 调用cal02方法计算1到2的累加和
p.cal02(3)
# 调用get_sum方法，计算1和2的和
print(p.get_sum(1, 2))

